#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include "mysort.h"

int main(int argc, char *argv[])
{
	RECNODE a[MAXSIZE];//包含关键字的数据元素结构体数组 
	int i,len;	
	
	printf("请输入要排序的元素个数：");
	scanf("%d",&len);
	printf("随机生成的%d个1到100之间的数：\n",len);
	
	srand((unsigned)time(NULL)); //随机数种子 
	for(i=0;i<len;i++)
	{
	   a[i].key=rand()%100+1;//rand是随机数函数 
	   printf("%4d",a[i].key);
	   if((i+1)%10==0)//十个数一行 
            printf("\n"); 
    }
	 /*
	insertSort(a,len);//直接插入排序调用
	printf("\n直接插入排序后：\n");
	for(i=0;i<len;i++){//输出排序后的关键字的顺序
		printf("%4d",a[i].key);
		if((i+1)%10==0)
            printf("\n"); 
	}
	
	shellSort(a,len);
	printf("\n希尔排序后：\n");//希尔排序调用 
	for(i=0;i<len;i++){//输出排序后的关键字的顺序
		printf("%4d",a[i].key);
		if((i+1)%10==0)
            printf("\n"); 
	} 
	*/
	
	/*
	bubbleSort(a,len);
	printf("\n冒泡排序后：\n");//冒泡排序调用 
	for(i=0;i<len;i++){//输出排序后的关键字的顺序
		printf("%4d",a[i].key);
		if((i+1)%10==0)
            printf("\n"); 
	} 
	*/
	quickSort(a,0,len-1);
	printf("\n快速排序后：\n");//希尔排序调用 
	for(i=0;i<len;i++){//输出排序后的关键字的顺序
		printf("%4d",a[i].key);
		if((i+1)%10==0)
            printf("\n"); 
	} 	
    
    
    /* 
	selectSort(a,len);
	printf("\n直接选择排序后：\n");//直接选择排序调用 
	for(i=0;i<len;i++){//输出排序后的关键字的顺序
		printf("%4d",a[i].key);
		if((i+1)%10==0)
            printf("\n"); 
	} 	
	*/
	
	/*
	heapSort(a,len);
	printf("\n堆排序后：\n");//堆排序调用 
	for(i=0;i<len;i++){//输出排序后的关键字的顺序
		printf("%4d",a[i].key);
		if((i+1)%10==0)
            printf("\n"); 
	} 
	*/
	
    
     
	printf("\n");
	
	
  
  //system("PAUSE");	
  return 0;
}
